package com.turing.post.antimoney.util;

import java.math.BigInteger;
import java.util.Date;
import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;

/**
 * 预警信息明细数据访问接口
 * 
 * @author 李治
 * 
 */
@Remote
@Local
public interface AlarmInfoDetailDao {
	/**
	 * 预警明细信息插入
	 * 
	 * @param alarmInfoDetail
	 *            预警明细信息
	 * @throws PCPSApplicationException
	 *             异常信息
	 */
	public void insertAlarmInfoDetail(AlarmInfoDetail alarmInfoDetail)
			throws PCPSApplicationException;

	/**
	 * 根据预警信息Id查询预警明细列表
	 * 
	 * @param alarmInfoId
	 * @return
	 */
	public List<AlarmInfoDetail> getAlarmInfoDetailsByAlarmInfoId(
			BigInteger alarmInfoId, Integer pageNo);

	/**
	 * 根据预警信息Id查询预警明细总数
	 * 
	 * @param alarmInfoId
	 * @return
	 */
	public Integer getAlarmInfoDetailsCountByAlarmInfoId(BigInteger alarmInfoId);

	/**
	 * 根据预警信息Id查询所有预警明细
	 * 
	 * @param alarmInfoId
	 * @return
	 */
	public List<AlarmInfoDetail> getAllAlarmInfoDetailsByAlarmInfoId(
			BigInteger alarmInfoId);

	/**
	 * 根据主键查询预警信息明细
	 * 
	 * @param alarmInfoDetail
	 * @return
	 */
	public AlarmInfoDetail getAlarmInfoDetailById(
			AlarmInfoDetail alarmInfoDetail);

	/**
	 * 获取某发卡商对应账务日期的所有报警ID
	 * 
	 * @param issueCompanyNo
	 * @param tranDate
	 * @return
	 */
	public List<String> getAlarmInfoIdFromDetailByTranDate(
			String issueCompanyNo, Date tranDate);

	/**
	 * 删除某发卡商对应账务日期的所有报警明细
	 * 
	 * @param issueCompanyNo
	 * @param tranDate
	 */
	public void removeAlarmInfoDetailByTranDate(String issueCompanyNo,
			Date tranDate);
}
